PrologCheck - Property-Based Testing in Prolog

نویسندگان

  • Cláudio Amaral
  • Mário Florido
  • Vítor Santos Costa
چکیده

We present PrologCheck, an automatic tool for propertybased testing of programs in the logic programming language Prolog with randomised test data generation. The tool is inspired by the well known QuickCheck, originally designed for the functional programming language Haskell. It includes features that deal with specific characteristics of Prolog such as its relational nature (as opposed to Haskell) and the absence of a strong type discipline. PrologCheck expressiveness stems from describing properties as Prolog goals. It enables the definition of custom test data generators for random testing tailored for the property to be tested. Further, it allows the use of a predicate specification language that supports types, modes and constraints on the number of successful computations. We evaluate our tool on a number of examples and apply it successfully to debug a Prolog library for AVL search trees.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Advances in Property-Based Testing for \alpha Prolog

αCheck is a light-weight property-based testing tool built on top of αProlog, a logic programming language based on nominal logic. αProlog is particularly suited to the validation of the meta-theory of formal systems, for example correctness of compiler translations involving name-binding, alpha-equivalence and capture-avoiding substitution. In this paper we describe an alternative to the negat...

متن کامل

Advances in Property-Based Testing for $α$Prolog

αCheck is a light-weight property-based testing tool built on top of αProlog, a logic programming language based on nominal logic. αProlog is particularly suited to the validation of the meta-theory of formal systems, for example correctness of compiler translations involving name-binding, alpha-equivalence and capture-avoiding substitution. In this paper we describe an alternative to the negat...

متن کامل

A Web-based Tutorial System for Understanding Transaction Processing

We describe an E-Learning tool, DTST, that is designed to assist undergraduate computer science students to learn about database transaction processing, in general, and CRAS property satisfaction, in particular. DTST is written primarily in PROLOG, and includes an Internet interface for ease of use and access. Testing of DTST suggests that the learning tool is of value in helping computer scien...

متن کامل

Graph Invariants as Necessary Conditions for Global Constraints

This report presents a database of about graph invariants for deriving systematically necessary conditions from the graph properties based representation of global constraints. This scheme is based on invariants on the graph characteristics used in the description of a global constraint. A SICStus Prolog implementation based on arithmetic and logical constraints as well as on indexicals is avai...

متن کامل

Performance testing in LOGFLOW

LOGFLOW is a distributed Prolog implementation on a transputer network. Evaluating a distributed system causes a number of theoretical and practical problems. In this paper, a monitoring tool is described which was designed and implemented to tackle with several problems of distributed performance testing. Some improvements are also introduced which were made in LOGFLOW based on the results of ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014